package com.example.bourse.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 订单表
 * @TableName order
 */
@TableName(value ="order")
@Data
public class Order implements Serializable {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单号
     */
    @TableField(value = "order_no")
    private String orderNo;

    /**
     * 买家ID（关联user.id）
     */
    @TableField(value = "buyer_id")
    private Long buyerId;

    /**
     * 卖家ID（关联user.id）
     */
    @TableField(value = "seller_id")
    private Long sellerId;

    /**
     * 商品总金额（单位：分，不含服务费）
     */
    @TableField(value = "total_amount_money")
    private Long totalAmountMoney;

    /**
     * 服务费金额（单位：分）
     */
    @TableField(value = "service_fee_money")
    private Long serviceFeeMoney;

    /**
     * 实际支付金额（单位：分，商品总金额 + 服务费金额）
     */
    @TableField(value = "actual_amount_money")
    private Long actualAmountMoney;

    /**
     * 商品总数量
     */
    @TableField(value = "quantity")
    private Integer quantity;

    /**
     * 支付类型（1:微信，2:支付宝）
     */
    @TableField(value = "payment_type")
    private Integer paymentType;

    /**
     * 订单状态（0:待支付，1:已支付，2:已完成，3:已取消，4:已退款）
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 订单备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 支付时间
     */
    @TableField(value = "pay_time")
    private Date payTime;

    /**
     * 退款时间
     */
    @TableField(value = "refund_time")
    private Date refundTime;

    /**
     * 取消时间
     */
    @TableField(value = "cancel_time")
    private Date cancelTime;

    /**
     * 完成时间
     */
    @TableField(value = "complete_time")
    private Date completeTime;

    /**
     * 逻辑删除（0:未删除，1:已删除）
     */
    @TableField(value = "del_flag")
    private Integer delFlag;

    /**
     * 创建时间
     */
    @TableField(value = "create_date")
    private Date createDate;

    /**
     * 更新时间
     */
    @TableField(value = "update_date")
    private Date updateDate;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}